OAuth এবং Token-Based Authentication উভয়ই আধুনিক ওয়েব অ্যাপ্লিকেশনগুলির নিরাপত্তা এবং অ্যাক্সেস নিয়ন্ত্রণের জন্য ব্যবহৃত দুটি জনপ্রিয় অথেন্টিকেশন প্রক্রিয়া। যদিও এদের উদ্দেশ্য এবং কার্যপ্রণালী একে অপরের সাথে কিছুটা সম্পর্কিত, তবুও তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে। চলুন এগুলোর বিস্তারিত আলোচনা করি:
১. OAuth (Open Authorization)
OAuth একটি অথেন্টিকেশন এবং অথরাইজেশন ফ্রেমওয়ার্ক যা একটি অ্যাপ্লিকেশনকে অন্য একটি অ্যাপ্লিকেশন বা সার্ভিসে ব্যবহারকারীর তথ্য অ্যাক্সেস করার অনুমতি দেয়। এটি মূলত তৃতীয় পক্ষের অ্যাপ্লিকেশন (third-party applications) এর জন্য ডিজাইন করা হয়, যাতে তারা ব্যবহারকারীর ইউজারনেম বা পাসওয়ার্ড ছাড়া কোনো একটি নির্দিষ্ট তথ্য বা রিসোর্স অ্যাক্সেস করতে পারে।
OAuth-এর প্রক্রিয়া:
- অথোরাইজেশন রিকোয়েস্ট:
- ব্যবহারকারী যখন একটি থার্ড-পার্টি অ্যাপ্লিকেশনে লগইন করেন, তখন সেই অ্যাপ্লিকেশন OAuth সার্ভারে একটি অথোরাইজেশন রিকোয়েস্ট পাঠায়।
- ব্যবহারকারীর অনুমতি:
- সার্ভার ব্যবহারকারীর অনুমতি চায়। অর্থাৎ, ব্যবহারকারী যদি অনুমতি দেন, তাহলে অ্যাপ্লিকেশনটি নির্দিষ্ট তথ্য বা রিসোর্স অ্যাক্সেস করতে পারে।
- অথোরাইজেশন কোড প্রদান:
- একবার অনুমতি দিলে, সার্ভার একটি অথোরাইজেশন কোড প্রদান করে।
- এক্সচেঞ্জ এবং টোকেন জেনারেশন:
- এই কোডটি অ্যাপ্লিকেশনটি টোকেনে পরিণত করতে সার্ভারে পাঠায়। সার্ভার সেই কোডটি ভ্যালিডেট করে এবং একটি এক্সেস টোকেন তৈরি করে।
- এক্সেস টোকেন ব্যবহার:
- অ্যাপ্লিকেশনটি এখন এক্সেস টোকেনটি ব্যবহার করে ব্যবহারকারীর ডেটা অ্যাক্সেস করতে পারে।
OAuth এর সুবিধাসমূহ:
- ব্যবহারকারী সরাসরি তাদের পাসওয়ার্ড শেয়ার না করেই অ্যাপ্লিকেশনগুলোকে তাদের ডেটাতে অ্যাক্সেস দিতে পারেন।
- নিরাপদ এবং স্কেলেবল অ্যাক্সেস নিয়ন্ত্রণ।
OAuth 2.0:
OAuth 2.0 হলো OAuth এর উন্নত সংস্করণ যা আধুনিক ওয়েব অ্যাপ্লিকেশন এবং API-এর জন্য অধিকতর নিরাপদ ও কার্যকরী। এটি বিভিন্ন ধরনের গ্রানুলার অ্যাক্সেস (scopes), টোকেন এক্সপিরেশন, এবং রিফ্রেশ টোকেন এর সুবিধা প্রদান করে।
২. Token-Based Authentication
Token-Based Authentication একটি নিরাপত্তা পদ্ধতি যেখানে একটি সার্ভার ব্যবহারকারীর পরিচয় যাচাই করে এবং একটি টোকেন প্রদান করে। এই টোকেনটি ব্যবহারকারী এবং সার্ভারের মধ্যে একাধিক রিকোয়েস্টে প্রমাণ হিসেবে ব্যবহৃত হয়। সবচেয়ে জনপ্রিয় টোকেন ফরম্যাট হল JWT (JSON Web Token), যা ওয়েব অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়।
Token-Based Authentication এর প্রক্রিয়া:
- লগইন রিকোয়েস্ট:
- ব্যবহারকারী তাদের ইউজারনেম এবং পাসওয়ার্ড সহ সার্ভারে লগইন রিকোয়েস্ট পাঠায়।
- টোকেন প্রদান:
- সার্ভার যদি ইউজারনেম এবং পাসওয়ার্ড যাচাই করে, তখন একটি টোকেন (যেমন JWT) তৈরি করে ব্যবহারকারীকে প্রদান করে। এই টোকেনটি একটি সংকুচিত JSON অবজেক্ট, যা ব্যবহারকারী এবং সার্ভারের মধ্যে নিরাপদভাবে ট্রান্সমিট করা হয়।
- টোকেন ব্যবহার:
- প্রতিবার ব্যবহারকারী সার্ভারের কাছে নতুন রিকোয়েস্ট পাঠাবে, সেই রিকোয়েস্টের সাথে এই টোকেনটি পাঠাতে হবে।
- সার্ভার প্রতিটি রিকোয়েস্টের সাথে টোকেন যাচাই করে এবং নিশ্চিত হয় যে এটি বৈধ এবং ব্যবহারকারীকে প্রমাণিত করতে সক্ষম।
- এক্সপিরেশন:
- টোকেনের একটি নির্দিষ্ট সময়সীমা থাকে, যার পরে টোকেনটি এক্সপায়ার্ড হয়ে যায়। এক্ষেত্রে, ব্যবহারকারীকে পুনরায় লগইন করতে বা নতুন টোকেন পেতে হতে পারে।
Token-Based Authentication এর সুবিধাসমূহ:
- স্ট্যাটলেস: সার্ভারকে ব্যবহারকারীর স্টেট বা সেশন সংরক্ষণ করতে হয় না, কারণ টোকেনটি নিজেই ব্যবহারকারীর তথ্য বহন করে।
- স্কেলেবিলিটি: এটি সহজে বহুমুখী সার্ভার আর্কিটেকচার (যেমন মাইক্রোসার্ভিস) এ ব্যবহার করা যায়।
- নিরাপত্তা: একবার প্রমাণীকৃত হলে, টোকেনটি পরবর্তী রিকোয়েস্টগুলিতে ব্যবহার করা যেতে পারে, যা পাসওয়ার্ড সুরক্ষিত রাখে।
OAuth এবং Token-Based Authentication এর মধ্যে পার্থক্য
| বিষয় | OAuth | Token-Based Authentication |
|---|---|---|
| উদ্দেশ্য | তৃতীয় পক্ষের অ্যাপ্লিকেশনের মাধ্যমে ডেটা অ্যাক্সেস নিয়ন্ত্রণ। | ব্যবহারকারী প্রমাণীকরণ এবং সুরক্ষিত অ্যাক্সেস প্রদান। |
| প্রকার | অথেন্টিকেশন এবং অথরাইজেশন ফ্রেমওয়ার্ক। | মূলত শুধু অথেন্টিকেশন, কিন্তু সুরক্ষিত অ্যাক্সেসের জন্য টোকেন ব্যবহৃত হয়। |
| উদাহরণ | Facebook, Google Login ইত্যাদি। | JWT, API টোকেন ইত্যাদি। |
| টোকেন টাইপ | এক্সেস টোকেন, রিফ্রেশ টোকেন। | JWT, API টোকেন। |
| সুবিধা | নির্দিষ্ট ডেটাতে সীমিত অ্যাক্সেস প্রদান। | স্ট্যাটলেস এবং স্কেলেবল, সার্ভারকে সেশন ম্যানেজ করার দরকার নেই। |
সারাংশ
OAuth এবং Token-Based Authentication উভয়ই আধুনিক অ্যাপ্লিকেশনগুলির নিরাপত্তার জন্য অত্যন্ত গুরুত্বপূর্ণ প্রযুক্তি। যেখানে OAuth তৃতীয় পক্ষের অ্যাপ্লিকেশনকে নির্দিষ্ট ডেটাতে অ্যাক্সেস অনুমতি দেয়, Token-Based Authentication ব্যবহারকারীর পরিচয় যাচাই এবং পরবর্তী রিকোয়েস্টের জন্য নিরাপদ অ্যাক্সেস প্রদান করে। তবে, OAuth সাধারণত যখন অ্যাপ্লিকেশনগুলোর মধ্যে নিরাপদভাবে ডেটা শেয়ার করার প্রয়োজন হয়, তখন ব্যবহৃত হয় এবং Token-Based Authentication ব্যবহারকারীর ব্যক্তিগত অ্যাক্সেস নিয়ন্ত্রণের জন্য আদর্শ।
Read more